iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

全端 LLM 應用開發-Day12-用 Azure Open AI 做 embedding

Open AI 有 Azure 的版本,簡單來說就是把 Open AI 服務放進 Azure 裡。目前三大公雲裡面只有 Azure 有 Open AI,畢竟微軟是 Open AI 最大的投資者。在 Azure Open AI 有很多好處,例如說可以做 RBAC 這種比較好的權限控管,還有可以設定在 V-net 內只讓允許的 server 訪問,還有其他如監控等等的功能。更重要的是保證 SLA ,可以讓連線的穩定性更好。而且計價方式原則上和 Open AI 一樣。

今天我們就來講怎麼用 Azure Open AI 上的 text-embedding-ada-002 來做 embedding。

需要事先申請

微軟現在很怕 AI 被濫用,因此 Azure Open AI 不是隨開隨用的,必須要事先申請才可以。申請連結如下:
 https://aka.ms/oai/access

現在的申請表格已經比當年簡化很多了。當年要申請 Azure Open AI 時,我根本還寫了一篇小論文,說要對用 Azure Open AI 來做什麼樣子的研究,而且還被退件了一次。現在的話,只要如實填寫好上面的表格就好了。

建立 Azure Open AI 的資源

如果收到微軟回信說通過申請的話,就可以在 Azure 裡建立 Azure Open AI 的資源了。

  1. 進到 Azure AI Services 之後,在左邊選單裡點選 Azure OpenAI,然後在點上方的 Create 按鈕,如下圖所示。

建立AzureOpenAI

  1. 接著我們按照表單要求,依序填上 Subscription、Resource group、Region、Name、Price tier。Region 這裡可以選日本,比較近,連線時也會快一些。然後我們再點 Next。如下圖所示。

建立AzureOpenAI

  1. 接著可以設定 Azure OpenAI 的網路。如果你是企業的話有可能會想要設定在自己的內網裡面,不過我們這裡就先 Allow all networks。如下圖所示。

建立AzureOpenAI

  1. 接著 Next 再點下去,最後就點 Create,等待一段時間。如下圖所示。

建立AzureOpenAI

  1. 接著我們進到剛剛建立好的資源裡,點進下圖所示的 explore。

建立AzureOpenAI

  1. 現在我們就進到 Azure OpenAI Studio 裡面啦!接著我們點擊左邊的 Deployments。如下圖所示。

建立AzureOpenAI

  1. 進到 Deployments 後,點擊上方的 Create new deployment。如下圖所示。

建立AzureOpenAI

  1. 接著會跳出一個視窗,我們在這裡選 text-embedding-ada-002,如下圖所示,然後取名,注意這個 deployment name 很重要,然後 create。

建立AzureOpenAI

  1. 完成 ada 的 deployment 之後,我們就可以來呼叫並使用了。我們先回到 Azure OpenAI 的資源頁面,然後選左邊的 Keys and Endpoints,在這裡我們記下端點和 key。

建立AzureOpenAI

做 Embedding

  1. 接著回到你的 VScode 專案裡,在 terminal 使用 poetry add openai

  2. 接著建立一個檔案叫 ada_embedding.py,貼上下面的程式碼。

import openai

EMBEDDING_MODEL_NAME = "embedding-ada-002" # 你剛剛在 Azure OpenAI 上建立的模型名稱
openai.api_base = "https://japanopenai2023ironman.openai.azure.com/" # 你的 endpoint
openai.api_key = "你的 key "
openai.api_type = "azure"
openai.api_version = "2023-03-15-preview"


response = openai.Embedding.create(
    input="我會披星戴月的想你,我會奮不顧身的前進,遠方煙火越來越唏噓,凝視前方身後的距離",
    engine=EMBEDDING_MODEL_NAME
)

# 這裡的 response['data'][0]['embedding'] 就是我們要的 embedding
print(response['data'][0]['embedding'])

這樣子就完成了使用 Azure Open AI 來做 embedding 啦!明天開始我們來把 embedding 儲存到向量資料庫裡面。


上一篇
全端 LLM 應用開發-Day11-用Hugging Face 來做 Embedding
下一篇
全端 LLM 應用開發-Day13-用 FAISS 來儲存向量資料
系列文
全端 LLM 應用開發(向量資料庫, Hugging Face, OpenAI, Azure ML, LangChain, FastAPI and more)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言